<?php

/**
 * Affichage du formulaire permettant d'ajouter du staff, voir staff.html
 * @global type $babBody 
 */
function displayAddStaffForm() {

    global $babBody;

    class displayAddStaffFormClass {

        function displayAddStaffFormClass() {
            
            /* LABELS */
            $this->lastnameLabel = bab_translate("Lastname", $GLOBALS['babAddonFolder']);
            $this->firstnameLabel = bab_translate("Firstname", $GLOBALS['babAddonFolder']);
            $this->phoneNumberLabel = bab_translate("Phone Number", $GLOBALS['babAddonFolder']);
            $this->emailLabel = bab_translate("Email", $GLOBALS['babAddonFolder']);
            $this->CSVLabel = bab_translate("CSV", $GLOBALS['babAddonFolder']);

            
            /* BUTTON */
            $this->addStaffButton = bab_translate("Add Staff", $GLOBALS['babAddonFolder']);
        }

    }

    $obj = new displayAddStaffFormClass();
    $babBody->babecho(bab_printTemplate($obj, $GLOBALS['babAddonHtmlPath'] . "staff.html", "addForm"));
}

/**
 * Affichage du formulaire permettant d'ajouter du staff à partir d'un fichier CSV, voir staff.html
 * @global type $babBody 
 */
function displayAddStaffCSVForm() {

    global $babBody;

    class displayAddStaffCSVFormClass {

        function displayAddStaffCSVFormClass() {
            
            /* LABELS */
            $this->CSVLabel = bab_translate("CSV", $GLOBALS['babAddonFolder']);
        }

    }

    $obj = new displayAddStaffCSVFormClass();
    $babBody->babecho(bab_printTemplate($obj, $GLOBALS['babAddonHtmlPath'] . "staff.html", "addForm2"));
}

/**
 * Affichage de la liste du staff, voir staff.html
 * @global type $babBody 
 */
function displayListStaff() {

    global $babBody;

    class displayListStaffClass {

        function displayListStaffClass() {

            /* LABELS */
            $this->lastnameLabel = bab_translate("Lastname", $GLOBALS['babAddonFolder']);
            $this->firstnameLabel = bab_translate("Firstname", $GLOBALS['babAddonFolder']);
            $this->phoneNumberLabel = bab_translate("Phone Number", $GLOBALS['babAddonFolder']);
            $this->emailLabel = bab_translate("Email", $GLOBALS['babAddonFolder']);
            
            /* NEXTSTAFF */
            $this->listStaff = bab_getGroupsMembers(unsDepartement_getGroupIDByName('uns_Personnel'));
            $this->listLength = count($this->listStaff);
            
            /* INFORMATIONS */
            $this->bred = true;
        }

        function nextrow() {
            static $k = 0;

            $this->bred = !$this->bred;

            if ($k < $this->listLength) {
                $this->staff = bab_getUserInfos($this->listStaff[$k]['id']);
                $k++;
                return true;
            } else {
                return false;
            }
        }

    }

    $obj = new displayListStaffClass();
    $babBody->babecho(bab_printTemplate($obj, $GLOBALS['babAddonHtmlPath'] . "staff.html", "list"));
}

/**
 * Fonction permettant d'ajouter du staff, voir functions/formation.php
 * @global type $babBody 
 */
function registerStaff($lastname, $firstname, $email, $phoneNumber) {
    global $babBody;
if (!empty($_POST['firstname']) && !empty($_POST['lastname']) && !empty($_POST['email'])) {
    unsDepartement_addStaff($lastname, $firstname, $email, $phoneNumber);
    } else {
        $babBody->addError(bab_translate("All fields are required!", $GLOBALS['babAddonFolder']));
        }
}

/**
 * Fonction permettant d'ajouter du staff à l'aide d'un fichier CSV, voir functions/formation.php
 * @global type $babBody 
 */
function registerStaffbyCSV($file)  {
        $handle = fopen("$file", "r");
        while (($data = fgetcsv($handle, 4096, ";")) !== FALSE) {
            unsDepartement_addStaff($data[0], $data[1], $data[2], $data[3]);   
        }  
}

/**
 * Fonctions appelées lors de la validation des formulaires d'ajout
 */
if (isset($_POST['addStaffSubmit'])) { //S'il y a l'ajout de staff, on execute la fonction d'ajout
        registerStaff($_POST['lastname'], $_POST['firstname'], $_POST['email'], $_POST['phoneNumber']);
} else if (isset($_FILES['file'])) { //S'il y a l'ajout de staff à partir du fichier CSV, on execute la fonction d'ajout
    $file = $_FILES['file']['tmp_name'];
    registerStaffbyCSV($file);
}

/**
 * Affichage des onglets en fonction des droits de l'utilisateur
 */
global $babBody;
$babBody->addItemMenu("listStaff", bab_translate("List Staff", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=staff&do=listStaff");
if (bab_isAccessValid('unsDepartement_rights_groups', 1002)) {
    //Après avoir octroyé les droits pour la gestion des départements, nous avons utilisé la méthode bab_isAccessValid($table, $ID) afin de vérifier les droits d'accès de l'utilisateur courant. 
    //On peut voir que l’ID de l’objet (1002) correspond bien à celui défini pour la classe macl.
    $babBody->addItemMenu("addStaff", bab_translate("Add Staff", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=staff&do=addStaff");
    $babBody->addItemMenu("addStaffCSV", bab_translate("Add Staff CSV", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=staff&do=addStaffCSV");
}


$do = bab_rp('do', 'listStaff');


switch ($do) {
    case "addStaff"://Ajout de Staff, on éxécute la fonction d'affichage du formulaire d'ajout
        if (bab_isAccessValid('unsDepartement_rights_groups', 1002)) {
            //Après avoir octroyé les droits pour la gestion des départements, nous avons utilisé la méthode bab_isAccessValid($table, $ID) afin de vérifier les droits d'accès de l'utilisateur courant. 
            //On peut voir que l’ID de l’objet (1002) correspond bien à celui défini pour la classe macl.
            $babBody->title = bab_translate("Add Staff", $GLOBALS['babAddonFolder']);
            displayAddStaffForm();
        } else {
            $babBody->addError(bab_translate("Access denied", $GLOBALS['babAddonFolder']));
        }
        break;

    case "addStaffCSV"://Ajout de Staff, on éxécute la fonction d'affichage du formulaire d'ajout
        if (bab_isAccessValid('unsDepartement_rights_groups', 1002)) {
            //Après avoir octroyé les droits pour la gestion des départements, nous avons utilisé la méthode bab_isAccessValid($table, $ID) afin de vérifier les droits d'accès de l'utilisateur courant. 
            //On peut voir que l’ID de l’objet (1002) correspond bien à celui défini pour la classe macl.
            $babBody->title = bab_translate("Add Staff With CSV", $GLOBALS['babAddonFolder']);
            displayAddStaffCSVForm();
        } else {
            $babBody->addError(bab_translate("Access denied", $GLOBALS['babAddonFolder']));
        }
        break;

    case "listStaff"://Affichage du Staff, on exécute la fonction d'affichage du Staff
        $babBody->title = bab_translate("Staff List", $GLOBALS['babAddonFolder']);
        displayListStaff();
        break;
}
/**
 * Affichage en gras de l'onglet actuel
 */
$babBody->setCurrentItemMenu($do);
?>
